package sistemaAcademico.interfaceUsuario.CursoMVC.controle;

import java.util.ArrayList;

import sistemaAcademico.interfaceUsuario.CursoMVC.excecao.CursoNaoEncontradoException;
import sistemaAcademico.interfaceUsuario.CursoMVC.excecao.CursoSemCodigoException;
import sistemaAcademico.interfaceUsuario.CursoMVC.view.CursoView;
import sistemaAcademico.negocio.Curso;

public class CursoControlador {
	public static void carregar(CursoView view) throws CursoSemCodigoException,
			CursoNaoEncontradoException {
		Curso c = view.getCurso();
		if (c.getCodigo().equals(" "))
			throw new CursoSemCodigoException();
		else {
			c = new Curso(c.getCodigo());
			if (c.getNome() == null)
				throw new CursoNaoEncontradoException();
			else
				view.setCurso(c);
		}
	}

	public static void salvar(CursoView view) throws CursoSemCodigoException {
		Curso c = view.getCurso();
		if (!c.getCodigo().equals(" "))
			c.salvar();
		else
			throw new CursoSemCodigoException();
	}
	
	//Nao sei se eh necessario
	public static void update(CursoView view) throws CursoSemCodigoException {
		Curso c = view.getCurso();
		if (!c.getCodigo().equals(" "))
			c.update();
		else
			throw new CursoSemCodigoException();
	}
	

	public static void remover(CursoView view) throws CursoSemCodigoException {
		Curso c = view.getCurso();
		if (!c.getCodigo().equals(" "))
			c.remover();
		else
			throw new CursoSemCodigoException();
	}

	public static String[][] getMatrizCurso() {	
		String colunas[] = {"Codigo", "Nome", "TotalCreditos", "TotalSemestres", "Turno"};
		ArrayList<Curso> cursos = Curso.getLista();
		String[][] dados = new String[cursos.size()][colunas.length];

		for (int i = 0; i < cursos.size(); i++) {
			Curso c = cursos.get(i);
			dados[i][0] = c.getCodigo();
			dados[i][1] = c.getNome();
			dados[i][2] = String.valueOf(c.getTotalCreditos());
			dados[i][3] = String.valueOf(c.getTotalSemestres());
			dados[i][4] = String.valueOf(c.getTurno());
		  //dados[i][5] = String.valueOf(c.getDisciplinas());
		}
		
		return dados;
	}

}
